package com.yuantu.judiciary.service;

import com.yuantu.judiciary.model.domain.VipOrderDO;
import com.yuantu.judiciary.model.form.*;
import com.yuantu.judiciary.model.vo.*;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 运营商管理模块
 *
 * @author syw
 * @since 2023-09-19
 **/
public interface IOperatorService {

    Boolean add(AddOperatorForm form);

    Boolean delete(Long accountId, List<Long> id);

    PageVO<OperatorVO> list(SearchAccountForm form, Pageable pageable);

    PageVO<OperatorInviteVO> inviteList(GetOperatorForm form, Pageable pageable);

    List<OperatorStatisticsVO> getStatistics(Long accountId);

    OperatorInviteStatisticsVO getInviteStatistics(Long accountId);

    Boolean downloadStatistics(HttpServletResponse response, Long accountId);

    Boolean extractPoint(ExtractPointForm form ,Long accountId);

    PageVO<ExtractPointRecordVO> getExtractPointRecord(Long accountId,Pageable pageable);

    PageVO<InviteOrderDetailVO> getInviteOrderDetail(Long accountId,Integer pageNum,Integer pageSize);

    PageVO<DistributeInfoVO> distributeInfoList(DistributeQueryVO query, Pageable pageable);

    List<DistributeCodeUseDetailVO> distributeDetailInfos(Long distributeId);

    void distributeDetailInfosExport(HttpServletResponse response, Long distributeId);

    void updateHistoryScore(VipOrderDO vipOrderDO);

    void updateUserHistoryScore();

    void distributeInfosExport(HttpServletResponse response);
}
